1. Field of the Invention
The present invention relates to a data synchronization system, data synchronization method, data center, and client terminal for maintaining the sameness between data in a client terminal and data in a server, and in particular, to a data synchronization system, data synchronization method, data center, and client terminal for maintaining the sameness of data by using Push type communication.
2. Description of the Related Art
With today's widespread use of portable information terminals, it has become commonplace that a fixed information terminal (hereinafter called server) such as a desktop personal computer is used in an office and in addition a portable information terminal (hereinafter called client terminal) is used outside the office. In such cases, in order to maintain the compatibility of data in the client terminal with data in the server, both of the systems should be synchronized (or, the sameness of data should be maintained). To achieve synchronization, a method is widely used in which a device such as a cradle is used to connect the client terminal to the server and synchronize them.
To wirelessly connect the client terminal to the server, a method is also used in which the communication facility of a mobile phone is used to synchronize data. Circuit switching has been used for synchronization using the communication facility. However, the circuit switching is unsuitable for transmitting a small amount of data to a number of terminals. In response to the recent commencement of services using packet communication, synchronization using packet communication in place of the circuit switching has been introduced. In addition, data transmission using “push” services has been made available.
FIG. 9 shows one method that uses such a technology and is a time chart during data synchronization between a client terminal 10a and a data server 20a. This method uses an IP solution Alive signal. The client terminal 10a continues sending the Alive signal to the data server 20a at predetermined time intervals to indicate to the data server 20a that the client terminal 10a is within an area in which it can receive data (S1). The data server 20a receives the Alive signal and, if there is updated data in data to be synchronized in the data server 20a, sends a synchronization request to the client terminal 10a (S2).
However, if the client terminal 10a moves into a dead space such as a tunnel where radio waves do not reach during the transmission of the synchronization request, the synchronization request does not reach the client terminal 10a. Also, the Alive signal does not reach the data server 20a. Accordingly, the data server 20a receives no reply from the client terminal 10a and therefore breaks the communication link (S3). When the client terminal 10a subsequently moves out of the tunnel into an area where radio waves can be received from the server, the Alive signal is sent to the data server 20a. However, it results in a socket error because of the passage of the client terminal 10a through the tunnel (S4). The data server 20a cannot receive the Alive signal due to the socket error.
FIG. 10 shows a synchronization method in which synchronization is provided without using the Alive signal. First, a data server 20b sends a synchronization request to a client terminal 10b if there is updated data in data to be synchronized in the data server 20b. Then, if the client terminal 10b is within an area where it can receive radio waves from the server 20b, it accepts the synchronization request and data synchronization is performed successfully (S10). However, if the client terminal 10b moves into a dead space such as a tunnel where radio waves do not reach during the transmission of the synchronization request, the synchronization request does not arrive at client terminal 10b (S11). Accordingly, the data server 20b receives no reply from the client terminal 10a, therefore a socket open error occurs and the data server 20b breaks the communication link (S12). In this case the client terminal 10b cannot know this situation and persistently has the realization that synchronization is maintained. Therefore, even if the server 20b re-sends the synchronization request after the client terminal 10b moves out of the tunnel into an area where it can receive radio waves from the client 20b (S13). synchronization is lost because the socket number is wrong (S14). In order to solve this problem, it is required that the client terminal 10b be reset by power shutdown.
The above-described methods that use a device such as a cradle to connect a client terminal to a server is troublesome because it requires that the client and server be physically connected with each other each time synchronization is performed. In addition, it is difficult to use the most up-to-date information because data can be updated only a few times a day depending on a user's situation.
Using a packet communication service or a push service to transmit data during a synchronization process has an advantage in its suitability for data delivery compared with circuit switching services. However, connections and disconnections occur frequently in a wireless section and a client terminal cannot determine whether a synchronization request is sent from a server or not while communication is disconnected. That is, the user of a portable information terminal has no means for determining whether data in his/her own terminal is up-to-date or not.
The method as shown in FIG. 9 in which the communication facility of a mobile phone is used to achieve data synchronization allows the number of data updates to be increased. However, it is a waste of communication to send an Alive signal when there is no data to be synchronized. That is, because the data server 20a cannot distinguish the Alive signal from other signals on the arrival, it establishes a connection to check the content of any incoming signal. Therefore, connection is always established even when a synchronization is not necessary and extra costs will be entailed in packet communication, which charges for data. In addition, after a socket error occurs, it is difficult to synchronize between data in the client server 10a and the data server 20a. 
According to method shown in FIG. 10 that does not use the Alive signal, the data server 20b disconnects communication if a socket error occurs, but the client terminal 10b persistently has the realization that it is still connected to the network. Such a communication mix-up makes data synchronization difficult.
The present invention has been made to solve these problems. It is an object of the present invention to provide a data synchronization system, data synchronization method, data center, and client terminal, wherein the client terminal can determine whether information held by the client terminal is up-to-date, and when used in a public mobile phone network, synchronization between a server and the client can be maintained in consideration of disconnections and connections associated with the movement of the client terminal and cost for maintaining a session (such as costs for Alive signal transmission) can be reduced.